﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using Backend.Data.Entities;

namespace Backend.Data.Mappings
{
    class UbicacionMap : EntityTypeConfiguration<Ubicacion>
    {
        public UbicacionMap()
        {
            ToTable("Ubicaciones");
            HasKey(t => t.Id);
            Property(t => t.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            Property(t => t.CallePasajeMz)
                .IsOptional();
            Property(t => t.Latitud)
                .IsOptional();
            Property(t => t.Longitud)
                .IsOptional();
            Property(t => t.NroLote)
                .IsOptional();
            Property(t => t.Referencia)
                .IsOptional();
            Property(t => t.Sector)
                .IsOptional();
            Property(t => t.FullAddress)
                .IsRequired();

            // 1 to 0.1 no permite null: una Ubicacion es de una GeoReferencia
            HasRequired(t => t.GeoReferencia)
                .WithRequiredDependent(c => c.Ubicacion)
                .WillCascadeOnDelete(false);



        }
    }
}
